package control;

import java.util.List;
import model.Participante;
import model.Turma;
import model.dao.ParticipanteDAO;

/**
 *
 * @author Patrick
 */
public class ParticipanteControl {

    ParticipanteDAO dao;

    /**
     * @param nome
     * @param telefone
     * @param turmaTurno 
     * @return
     */
    public boolean cadastraParticipante(String nome, String telefone, String turmaTurno) {
        Participante participante = new Participante(nome, telefone);
        TurmaControl tControl = new TurmaControl();
        Turma turma = tControl.pesquisarPorHorario(turmaTurno);
        if (turma == null) {
            tControl.cadastraTurma(turmaTurno);
            turma = tControl.pesquisarPorHorario(turmaTurno);
        }
        participante.setTurma(turma);
        
        dao = new ParticipanteDAO();
        dao.beginTransaction();
        dao.save(participante);
        dao.stopOperation(true);
        return true;
    }

    /**
     *
     * @param participante
     * @return
     */
    public boolean editaParticipante(Participante participante) {
        dao = new ParticipanteDAO();
        dao.beginTransaction();
        dao.update(participante);
        dao.stopOperation(true);
        return true;
    }

    /**
     *
     * @param participante
     * @return
     */
    public boolean excluiParticipante(Participante participante) {
        dao = new ParticipanteDAO();
        dao.beginTransaction();
        dao.delete(participante);
        dao.stopOperation(true);
        return true;
    }

    /**
     *
     * @param nome
     * @return
     */
    public List<Participante> pesquisaPorNome(String nome) {
        List<Participante> resultados;
        dao = new ParticipanteDAO();
        dao.beginTransaction();
        resultados = dao.pesquisaPorNome(nome);
        dao.stopOperation(true);
        return resultados;
    }
}
